package com.sayice.coursetable.logic.dao;

import androidx.room.Dao;
import androidx.room.Insert;
import androidx.room.Query;

import com.sayice.coursetable.logic.model.CourseTable;

import java.util.List;

/**
 * 课表相关数据库操作
 */
@Dao
public interface CourseTableDao {
    /**
     * 插入一条记录
     */
    @Insert
    void insert(CourseTable courseTable);

    /**
     * 插入多条记录
     */
    @Insert
    void insertAll(CourseTable... courseTables);

    /**
     * 修改课表名
     *
     * @param id   课表编号
     * @param name 新课表名
     */
    @Query("update CourseTable set name = :name where id = :id")
    void updateName(int id, String name);

    /**
     * 设置课表名（仅当课表名为 null 时）
     *
     * @param id   课表编号
     * @param name 新课表名
     */
    @Query("update CourseTable set name = :name where id = :id and name = null")
    void setNameWhenNull(int id, String name);

    /**
     * 查询课表名
     *
     * @param id 课表编号
     * @return 返回课表名
     */
    @Query("select name from CourseTable where id = :id")
    String getName(int id);

    /**
     * 课表数
     *
     * @return 返回课表数量
     */
    @Query("select count(*) from CourseTable")
    int count();
}
